use eframe::egui;
use html_parser::{aria::AriaManager, form::HtmlForm, DomNode, HtmlParser, ParserConfig};
use std::collections::HashMap;
use std::error::Error;

// 导出类型和组件
pub use self::app::FeatureTester;
pub use self::types::{FeatureCategory, FeatureTab, HttpMethod};

// 声明子模块
pub mod app;
pub mod css_tabs;
pub mod html_tabs;
pub mod javascript_tabs;
pub mod layout_tabs;
pub mod network_tabs;
pub mod render_tabs;
pub mod types;
pub mod ui_tabs;

// 这里实现所有原来的功能测试器代码，但现在它们都在一个文件中
// 如果文件太大，后续可以再进行模块化拆分

pub fn run_feature_tester() -> Result<(), Box<dyn Error>> {
    let options = eframe::NativeOptions {
        initial_window_size: Some(egui::vec2(1200.0, 800.0)),
        ..Default::default()
    };

    // 使用eframe 0.23版本的正确API
    eframe::run_native(
        "RustBrowser 功能测试器",
        options,
        Box::new(|cc| {
            // 设置中文字体
            crate::set_chinese_font(&cc.egui_ctx);
            Box::new(FeatureTester::new())
        }),
    )?;

    Ok(())
}
